# 

# 初始化变量:
# WORK_SPACE: 工作目录，将在此目录下查找配置，默认为 workspace
#
# 
# 配置文件应该按如下目录结构组织
# 
# <workspace>/gitlab
# |- conf # gitlab 服务器配置，包括地址、token
# |- config.yaml # 项目配置
# |- project.d (Deprecated)
#   |- <project 1>
#   |- <project 2>


if test -z "$WORK_SPACE"; then
    WORK_SPACE=workspace
fi

# 配置文件基础路径
CONF_DIR=$HOME/$WORK_SPACE/gitlab

# 项目配置目录
PROJECT_DIR=$CONF_DIR/project.d
# gitlab相关的key的配置文件
GITLAB_CONF=$CONF_DIR/conf
# new: 使用一个配置文件中配置所有项目列表
CONFIG_FILE=$CONF_DIR/config.yaml

if test ! -f $GITLAB_CONF; then
    echo "$GITLAB_CONF not found"
    exit 1
fi

# 初始化KEY变量
. $GITLAB_CONF

# 执行 gitlab 命令，自动处理gitlab所需的key
function gitlab_exec()
{
    GITLAB_API_PRIVATE_TOKEN=$GITLAB_API_PRIVATE_TOKEN \
        GITLAB_API_ENDPOINT="$GITLAB_API_ENDPOINT" \
        GITLAB_API_HTTPARTY_OPTIONS="$GITLAB_API_HTTPARTY_OPTIONS" \
        gitlab "$@"
}

# arg0: 项目名
# 结果设置到变量 PROJECT_ID
function read_project_from_yaml()
{
    t=(`yq ".projects.$1 | (.id,.url)" "$CONFIG_FILE"`)
    PROJECT_ID=${t[0]}
    PROJECT_URL=${t[1]}
}
